#ifndef PROCESSOR_H_
#define PROCESSOR_H_

#include <string>
#include <map>
#include <iostream>
#include "Environment.h"
#include "kit.h"

using namespace std;
using namespace phnq::kit::compression;

namespace phnq
{
	namespace phnqlets
	{
		enum
		{
			STATUS_OK,
			STATUS_BAD_REQUEST,
			STATUS_NOT_FOUND,
			STATUS_FORBIDDEN,
			STATUS_INTERNAL_ERROR
		};
		
		struct processor_response
		{
			short status;
			long clientCacheDuration;
			bool deflate;
			istream *bodyStream;
		};
		
		class Processor
		{
			public:
				Processor();
				~Processor();
				processor_response* process(string path, map<string,string> params);
				
			private:
				processor_response response;
		};
	}
}

#endif // PROCESSOR_H_
